package com.example.yqand4v1_1.dao;

import com.example.yqand4v1_1.dao.entity.Activity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
@Mapper
@Component
public interface ActivityEntityMapper {
    /**
     *
     * @return 查询所有活动
     */
    ArrayList<Activity> queryAllActivities();

    /**
     * @param count 查询次数
     * @param amount 每次查询的数量
     * @return 对应数量的活动信息
     */
    ArrayList<Activity> queryActivitiesByAmount(@Param("count") int count,@Param("amount") int amount);
    /**
     *
     * @param volunteerId 志愿者id
     * @param activityId  活动id
     * @return 将一条新记录写入participate表
     */
    int participateActivity(@Param("volunteerId") int volunteerId,@Param("activityId")  int activityId);

    /**
     *
     * @param activity 活动对象
     * @return 更新是否成功
     */
    int updateActivity(@Param("activity")Activity activity);

    /**
     * @param id 活动id
     * @return 返回活动信息
     */
    Activity querySingleActivityById(int id);

    /**
     * 查询志愿者都参加了什么活动
     * @param volunteerId 志愿者id
     * @return 活动id列表
     */
    ArrayList<Integer> queryActivitiesIdOfVolunteer(int volunteerId);

    /**
     * 查询数据表中活动一共有多少
     * @return 活动总数
     */
    int queryTotalNumOfActivities();
}
